1. Field of the Invention
The invention relates in general to integrated circuits and more particularly to use of annotations upon objects in a hierarchical circuit design.
2. Description of the Related Art
An ‘annotation’ comprises information that is added to a design. A ‘constraint’ refers to a category of annotation that acts as an instruction to direct another software based tool in the design flow. A constraint typically is identified, for example, by a name, which is associated with an optional value that may specify details about the constraint. A ‘probe’ refers to a category of annotation to direct where a measurement should be placed after a simulation event. A ‘note’ refers to a category of annotation used to indicate design intent and may be akin to an informal “note to self”.
Constraint-driven design relates to a technique for productivity enhancement in modern design automation software. A designer may attach a constraint to one or more design ‘occurrences’, i.e., instantiations of an object that represents a component of a design, to specify information about a design object for the purpose, for example, of overriding default layout parameters or for providing additional layout or process parameters. Constraints to a design that can be recognized and used by computer software based design tool or fabrication process also are referred to as “constraints”. As used herein, an ‘edit’ is distinct from a constraint. An edit refers to a change to the design, and a constraint can also be seen as a limitation or qualification on use or behavior of a component of the design.
Constraint types may include behavioral (e.g., electrical) and structural (e.g., symmetry, module generators, alignment, orientation) and physical (e.g., design-specific process rule overrides, shielding). For example, a symmetry constraint may specify that two components (e.g., transistors) are to be positioned symmetrically in the physical layout. An orientation constraint may specify that a component is to be positioned with a particular orientation, where the orientation is specified by the value of the constraint. A design tool may recognize and act on the constraints when generating the layout. The constraint also may be used in the fabrication process when fabricating the physical circuit.
During design layout, a hierarchical design is flattened down to layout stop-points, typically at leaf nodes in the design, and for each leaf node, corresponding constraints are transferred to leaf node instances that have been annotated with such constraints. Typically, modification of design schematics is not permitted when annotating constraints since many design flows impose a strict ‘read-only’ rules to design schematics. As a result, annotations typically have been stored in a file separate from the schematic design. However, managing the relationship between informal data (e.g., a text file storing annotations) and a changing database used to interpret a design requires increasingly complex parsing of the data and interpreting of the relationship. Tracking edits to design configurations and updating corresponding annotations to occurrences based upon those modifications requires an increasing number of details to be saved and re-interpreted.
Storing annotations for a schematic hierarchical design has been difficult to manage in part because a design hierarchy is elaborated (i.e., interpreted) at runtime, and therefore, a fully qualified path to a given ‘occurrence’ to which an annotation is to apply is determined dynamically. The challenge is to relate an annotation to an occurrence of a design object without actually “touching” the design object. This challenge is even more difficult since an occurrence upon which an annotation is to apply is defined dynamically by an interpreted path in a hierarchy of design, and the actual occurrence comprises a hierarchical collection of designs on the path.
Therefore, there has been a need for improvements in the storage and management of annotations applied to occurrences within a hierarchical design. The present invention meets this need.